var gridX;

Ext.onReady(function()
	{
	    Ext.BLANK_IMAGE_URL = _PHP_.url.webroot+'inc/js/extjs/ext-2.1/resources/images/default/s.gif';
	    
	    gridX = new Ext.grid.GridPanel
	    	({
		        el: 'grid',
		        width: 700,
		        height: 500,
		        title: _PHP_.grid.title,
		        loadmask: {msg: 'Carregando ...'},
		        
		        trackMouseOver: true,
		        enableColumnMove: false,
				enableColumnResize: true,
				enableDragDrop: false,
				enableHdMenu: false,

		        loadMask: true,
		        viewConfig:
			        {
			            forceFit: true,
			            enableRowBody: true
			        },
			    tbar: 
			    	[
						new Ext.Button
							({
						        text: 'Adicionar',
						        icon: _PHP_.url.imgroot+'application_add.png',
						        cls: 'x-btn-text-icon',
						        handler: function()
						        	{
						        		var pageInfo = gridX.getBottomToolbar().getPageData();
						        		document.location.href = _PHP_.grid.url.add + (pageInfo.activePage-1);
						        	}
						    }),
					    new Ext.Button
							({
						        text: 'Editar',
						        icon: _PHP_.url.imgroot+'application_edit.png',
						        cls: 'x-btn-text-icon',
						        handler: function()
						        	{
						        		if(gridX.getSelectionModel().getCount() < 1)
						        		{
						        			Ext.MessageBox.alert('Atenção', 'Por favor selecione o registro que deseja editar.');
						        		}
						        		else
						        		{
						        			if(gridX.getSelectionModel().getCount() > 1)
						        			{
						        				Ext.MessageBox.alert('Atenção', 'Por favor selecione apenas um registro.');
						        			}
						        			else
						        			{
						        				var pageInfo = gridX.getBottomToolbar().getPageData();
						        				document.location.href = _PHP_.grid.url.edit + (pageInfo.activePage-1) + '/' + gridX.getSelectionModel().getSelected().id;
						        			}
						        		}
						        	}	
						    }),
					    new Ext.Button
							({
						        text: 'Apagar',
						        icon: _PHP_.url.imgroot+'application_delete.png',
						        cls: 'x-btn-text-icon',
						        handler: function()
						        	{
						        		if(gridX.getSelectionModel().getCount() < 1)
						        		{
						        			Ext.MessageBox.alert('Atenção', 'Por favor selecione o registro que deseja apagar.');
						        		}
						        		else
						        		{
						        			var msgbox = Ext.MessageBox.wait('Processando ...', 'Aguarde');
						        			
						        			if(gridX.getSelectionModel().getCount() > 1)
						        			{
						        				var ids = [];
						        				var selection = gridX.getSelectionModel().getSelections();
						        				
						        				for(var i=0;i<selection.length;i++)
						        				{
						        					ids.push(selection[i].id);
						        				}
						        				
						        				ids = ids.join(',');
						        			}
						        			else
						        			{
						        				 var ids = gridX.getSelectionModel().getSelected().id; 
						        			}
						        			
						        			setTimeout(function()
												{
								        			Ext.Ajax.request(
									        			{
														   url: _PHP_.grid.url.del,
														   method: 'post',
														   params: 
														       {
														           ids: ids
														       },
														   
														   callback: function(options, success, response)
														       {
														       	   msgbox.hide();
														       	   msgbox = null;
														       	   
																   //alert(action.response.responseText); return false;
																   response = Ext.util.JSON.decode(response.responseText); 
																	
														       	   if(!success || response.success !== 'true')
														       	   {
														                Ext.MessageBox.alert('Erro', 'Não foi possivel apagar o(s) registro(s) desejado(s), por favor tente novamente');
														           }
														           else
														           {
														                gridX.store.reload();
														           }
														   	   }
														});
												}, 1500);
						        		}
						        	}
						    })
					],
		        bbar: new Ext.PagingToolbar
			        ({
			            store: new Ext.data.Store(),
			            pageSize: 18,
			            displayInfo: true,
			            paramNames:
			            	{limit: 'limit',
			            	 start: 'offset'},
			            beforePageText: 'Página',
			            afterPageText: 'de {0}',
			            firstText: 'Primeira página',
			            lastText: 'Última página',
			            nextText: 'Próxima página',
			            prevText: 'Página anterior',
			            refreshText: 'Atualizar',
			            displayMsg: 'Mostrando: {0} a {1}. Total: {2}',
			            emptyMsg: 'Não ha registros no momento'
			        }),
				plugins: new Ext.ux.grid.Search
					({
						width: 300,
						align: 'right',
						mode: 'local',
		        		position: 'top',
						showSelectAll: true,
						searchText: 'Filtro',
						remoteModeText: ['Remoto', 'Local'],
						selectAllText: 'Todos'
					})
		    });
		
		if(window.columns) columns.init();
	});